In system administration, configuration, troubleshooting, and other similar tasks, various resources, components, and other environmental factors are evaluated. However, administration may be difficult and complex, particularly with configurable systems. Installation and administration of configurable systems are problematic because various features, if altered, may result in cascading effects that can negatively affect overall system performance. Given the complexity involved with large-scale systems, such as distributed or enterprise software systems, modification of a single resource or component may lead to unpredictable or unforeseen effects.
There are several challenges associated with resource and system configuration of complex systems. Numerous resources such as individual servers, clients, databases, and other components may be placed into a particular system configuration. Troubleshooting a performance problem may be difficult because each performance problem in a configuration may require the manipulation of multiple resources. Determining which resources to manipulate can involve significant time, skill, and labor. Another challenge occurs when a resource is manipulated to alleviate a problem, but creates or causes an unforeseen effect in other resources. Configurable systems are difficult to troubleshoot given relationships between system components. For example, a server-based system (e.g., SQL server) may be affected by one or more resources or attributes including CPU speed, CPU stress, hardware costs, available memory, and communication bus speed. However, when one of these attributes is modified, an unforeseen, detrimental effect may be caused, resulting in poor system performance.
Thus, what is needed is a solution for managing configurable systems while avoiding the limitations of conventional techniques.